home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / trial / demon / TURNPIKE.1 / CLASSES.ZIP / JAVA / AWT / List.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  3.4 KB  |  249 lines

  1. package java.awt;
  2.  
  3. import java.awt.peer.ListPeer;
  4. import java.util.Vector;
  5.  
  6. public class List extends Component {
  7.    Vector items;
  8.    int rows;
  9.    boolean multipleSelections;
  10.    int[] selected;
  11.    int visibleIndex;
  12.  
  13.    public List() {
  14.       this(0, false);
  15.    }
  16.  
  17.    public List(int var1, boolean var2) {
  18.       this.items = new Vector();
  19.       this.multipleSelections = false;
  20.       this.selected = new int[0];
  21.       this.visibleIndex = -1;
  22.       this.rows = var1;
  23.       this.multipleSelections = var2;
  24.    }
  25.  
  26.    public synchronized void addNotify() {
  27.       super.peer = ((Component)this).getToolkit().createList(this);
  28.       super.addNotify();
  29.       this.visibleIndex = -1;
  30.    }
  31.  
  32.    public synchronized void removeNotify() {
  33.       if (super.peer != null) {
  34.          ListPeer var1 = (ListPeer)super.peer;
  35.          this.selected = var1.getSelectedIndexes();
  36.       }
  37.  
  38.       super.removeNotify();
  39.    }
  40.  
  41.    public int countItems() {
  42.       Vector var1 = this.items;
  43.       return var1.elementCount;
  44.    }
  45.  
  46.    public String getItem(int var1) {
  47.       return (String)this.items.elementAt(var1);
  48.    }
  49.  
  50.    public synchronized void addItem(String var1) {
  51.       this.addItem(var1, -1);
  52.    }
  53.  
  54.    public synchronized void addItem(String var1, int var2) {
  55.       label20: {
  56.          if (var2 >= -1) {
  57.             Vector var3 = this.items;
  58.             if (var2 < var3.elementCount) {
  59.                break label20;
  60.             }
  61.          }
  62.  
  63.          var2 = -1;
  64.       }
  65.  
  66.       if (var2 == -1) {
  67.          this.items.addElement(var1);
  68.       } else {
  69.          this.items.insertElementAt(var1, var2);
  70.       }
  71.  
  72.       ListPeer var4 = (ListPeer)super.peer;
  73.       if (var4 != null) {
  74.          var4.addItem(var1, var2);
  75.       }
  76.  
  77.    }
  78.  
  79.    public synchronized void replaceItem(String var1, int var2) {
  80.       this.delItem(var2);
  81.       this.addItem(var1, var2);
  82.    }
  83.  
  84.    public synchronized void clear() {
  85.       if (super.peer != null) {
  86.          ((ListPeer)super.peer).clear();
  87.       }
  88.  
  89.       this.items = new Vector();
  90.       this.selected = new int[0];
  91.    }
  92.  
  93.    public synchronized void delItem(int var1) {
  94.       this.delItems(var1, var1);
  95.    }
  96.  
  97.    public synchronized void delItems(int var1, int var2) {
  98.       for(int var3 = var2; var3 >= var1; --var3) {
  99.          this.items.removeElementAt(var3);
  100.       }
  101.  
  102.       if (super.peer != null) {
  103.          ((ListPeer)super.peer).delItems(var1, var2);
  104.       }
  105.  
  106.    }
  107.  
  108.    public synchronized int getSelectedIndex() {
  109.       int[] var1 = this.getSelectedIndexes();
  110.       return var1.length == 1 ? var1[0] : -1;
  111.    }
  112.  
  113.    public synchronized int[] getSelectedIndexes() {
  114.       ListPeer var1 = (ListPeer)super.peer;
  115.       if (var1 != null) {
  116.          this.selected = var1.getSelectedIndexes();
  117.       }
  118.  
  119.       return this.selected;
  120.    }
  121.  
  122.    public synchronized String getSelectedItem() {
  123.       int var1 = this.getSelectedIndex();
  124.       return var1 < 0 ? null : this.getItem(var1);
  125.    }
  126.  
  127.    public synchronized String[] getSelectedItems() {
  128.       int[] var1 = this.getSelectedIndexes();
  129.       String[] var2 = new String[var1.length];
  130.  
  131.       for(int var3 = 0; var3 < var1.length; ++var3) {
  132.          var2[var3] = this.getItem(var1[var3]);
  133.       }
  134.  
  135.       return var2;
  136.    }
  137.  
  138.    public synchronized void select(int var1) {
  139.       ListPeer var2 = (ListPeer)super.peer;
  140.       if (var2 != null) {
  141.          var2.select(var1);
  142.       } else {
  143.          for(int var3 = 0; var3 < this.selected.length; ++var3) {
  144.             if (this.selected[var3] == var1) {
  145.                return;
  146.             }
  147.          }
  148.  
  149.          if (!this.multipleSelections) {
  150.             this.selected = new int[1];
  151.             this.selected[0] = var1;
  152.          } else {
  153.             int[] var4 = new int[this.selected.length + 1];
  154.             System.arraycopy(this.selected, 0, var4, 0, this.selected.length);
  155.             var4[this.selected.length] = var1;
  156.             this.selected = var4;
  157.          }
  158.       }
  159.    }
  160.  
  161.    public synchronized void deselect(int var1) {
  162.       ListPeer var2 = (ListPeer)super.peer;
  163.       if (var2 != null) {
  164.          var2.deselect(var1);
  165.       }
  166.  
  167.       for(int var3 = 0; var3 < this.selected.length; ++var3) {
  168.          if (this.selected[var3] == var1) {
  169.             int[] var4 = new int[this.selected.length - 1];
  170.             System.arraycopy(this.selected, 0, var4, 0, var3);
  171.             System.arraycopy(this.selected, var3 + 1, var4, var3, this.selected.length - (var3 + 1));
  172.             this.selected = var4;
  173.             return;
  174.          }
  175.       }
  176.  
  177.    }
  178.  
  179.    public synchronized boolean isSelected(int var1) {
  180.       int[] var2 = this.getSelectedIndexes();
  181.  
  182.       for(int var3 = 0; var3 < var2.length; ++var3) {
  183.          if (var2[var3] == var1) {
  184.             return true;
  185.          }
  186.       }
  187.  
  188.       return false;
  189.    }
  190.  
  191.    public int getRows() {
  192.       return this.rows;
  193.    }
  194.  
  195.    public boolean allowsMultipleSelections() {
  196.       return this.multipleSelections;
  197.    }
  198.  
  199.    public void setMultipleSelections(boolean var1) {
  200.       if (var1 != this.multipleSelections) {
  201.          this.multipleSelections = var1;
  202.          ListPeer var2 = (ListPeer)super.peer;
  203.          if (var2 != null) {
  204.             var2.setMultipleSelections(var1);
  205.          }
  206.       }
  207.  
  208.    }
  209.  
  210.    public int getVisibleIndex() {
  211.       return this.visibleIndex;
  212.    }
  213.  
  214.    public void makeVisible(int var1) {
  215.       ListPeer var2 = (ListPeer)super.peer;
  216.       this.visibleIndex = var1;
  217.       if (var2 != null) {
  218.          var2.makeVisible(var1);
  219.       }
  220.  
  221.    }
  222.  
  223.    public Dimension preferredSize(int var1) {
  224.       ListPeer var2 = (ListPeer)super.peer;
  225.       return var2 != null ? var2.preferredSize(var1) : super.preferredSize();
  226.    }
  227.  
  228.    public Dimension preferredSize() {
  229.       return this.rows > 0 ? this.preferredSize(this.rows) : super.preferredSize();
  230.    }
  231.  
  232.    public Dimension minimumSize(int var1) {
  233.       ListPeer var2 = (ListPeer)super.peer;
  234.       return var2 != null ? var2.minimumSize(var1) : super.minimumSize();
  235.    }
  236.  
  237.    public Dimension minimumSize() {
  238.       return this.rows > 0 ? this.minimumSize(this.rows) : super.minimumSize();
  239.    }
  240.  
  241.    protected String paramString() {
  242.       return super.paramString() + ",selected=" + this.getSelectedItem();
  243.    }
  244.  
  245.    boolean tabbable() {
  246.       return true;
  247.    }
  248. }
  249.